package com.moxiao.yfjh.module.activity.controller.admin.activityInfo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDateTime;

import static com.moxiao.yfjh.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;


/**
 * 相亲活动信息 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class ActivityInfoBaseVO {

    @Schema(description = "活动编码")
    private String no;

    @Schema(description = "活动名称", example = "张三")
    private String name;

    @Schema(description = "活动时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String activeDate;

    @Schema(description = "活动开始时间段")
    private String activeTimeBegin;

    @Schema(description = "活动结束时间段")
    private String activeTimeEnd;

    @Schema(description = "男人数")
    private String menNum;

    @Schema(description = "女人数")
    private String womenNum;

    @Schema(description = "负责人")
    private String head;

    @Schema(description = "负责性别")
    private Byte headSex;

    @Schema(description = "活动负责人id：个人活动时是创建活动人的userid")
    private Long headUserId;

    @Schema(description = "商品类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private String productType;

    @Schema(description = "套餐名称", example = "张三")
    private String packageName;

    @Schema(description = "活动费用")
    private String activeCost;


    @Schema(description = "截止时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private String deadline;

    @Schema(description = "活动描述")
    private String activeDesc;

    @Schema(description = "活动封面", requiredMode = Schema.RequiredMode.REQUIRED)
    private String activeCover;

    @Schema(description = "审核状态（0未审核 1已通过 2已驳回）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    private Byte auditStatus;

    @Schema(description = "审核人")
    private String auditUser;

    @Schema(description = "审核时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime auditTime;

    @Schema(description = "驳回原因", example = "不好")
    private String rejectReason;

    /**
     * 状态 0 未审核 1 未缴费 2.报名中 3.未开始 4.进行中 5.己结束 6.已驳回 7.已关闭，8.待成立，9.平台促成
     */
    @Schema(description = "状态:0.未审核,1.未缴费,2.报名中,3.未开始,4.进行中,5.己结束,6.已驳回,7.已关闭,8.待成立", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Byte status;
    /**
     * 活动标记 0=平台促成，1=正常，2=自定义
     */
    @Schema(description = "活动标记 0=平台促成，1=正常，2=自定义")
    private Byte mark;

    @Schema(description = "费用分摊")
    private Byte costShare;

    private String address;

    @Schema(description = "活动来源 0 个人活动 1 官方活动")
    private String activeSource;

    @Schema(description = "费用分摊名称")
    private String costShareName;

    @Schema(description = "负责人")
    private String headName;

}
